查看原文
其他

我也来聊聊微信键盘

维术 虚拟框架 2022-09-11

最近「微信键盘」开启了内测,我看到挺多网友讨论的,于是前几天下载下来尝试了一下,今天也来跟大家分享一下使用体验。

首先需要说明的是,我对一个输入法的要求,其实就只有两点:

  1. 1. 精准。要能够切实提升我的输入效率,这是一个输入法最核心的竞争力。如果经常打错字,或者无法给出精准的候选词,那我为什么不自己开发一个本地的拼音输入法?

  2. 2. 隐私。输入法里面,包含了太多的个人信息,身份证号、手机号码,银行卡号,居住地址,基本上所有关于你的信息,输入法都有能力获取到;如果一个输入法不能保护隐私,那么你在任何其他地方做的任何保护隐私的努力都形同虚设。

在开始评测之前,说一下我当前使用的输入法:

  • • 电脑上我用的是 macOS 系统自带的双拼输入法,没有额外的词库,只有自己录入的常用的短语(如收货地址,开票信息等)

  • • 手机上我使用的是 MIUI 搜狗输入法小米版,使用的是全拼,并且开启了隐私模式。

核心体验

有人可能会觉得奇怪,为什么我电脑上要用「双拼」?这完全是因为 macOS 系统自带的拼音输入法与第三方输入法(如搜狗)差距太大了,搜狗的云词库和联想功能不是一般的强大,而系统输入法做不到;为了不依赖这种联想功能,我选择了双拼输入;而手机上由于键位有限,双拼并没有太大的优势,所以没办法用了搜狗。

说回微信键盘,经过几天的体验,我认为它的输入体验基本上可以满足我个人的要求了。比 macOS 系统自带的拼音输入法要强,但与搜狗相比还是差了点。在使用微信键盘的时候,一天总有那么几次,它没法给出我需要的候选词,或者它有这个候选词,但排列太靠后了。每次出现这种情况,我都有一种挫败感,但使用搜狗却很少出现这个问题;或者说,我在使用搜狗的时候,在它没有给出合适的候选词的绝大多数情况下,我自己内心也会觉得“它确实联想不出来”,而在使用微信键盘的时候,我内心会觉得“你明明可以给出合适的候选词,为什么没有?”

当然,这也可能与我使用微信键盘的时间还太短了有关,做词语联想,还是需要一定的数据量做训练;不过当前的事实就是:基本满足需求,还有改进空间

隐私

上面我们提到,输入法有能力获取你所有的隐私信息;不过,能不能做不做是两码事,很多时候,输入法尊不尊重你的隐私,我们普通人是完全没有保障的。不过,作为一个程序员,我还是有能力对 App 做一些分析。我在 B 站和公众号上看到不少这样的言论:微信键盘的联想功能要联网,**龙肯定把我的输入信息传到服务器了,扯什么隐私?

接下来,我将从技术角度,比较一下「微信键盘」和「搜狗输入法小米版隐私模式」在隐私方面的不同之处。

备注:微信键盘版本 0.9.0,搜狗输入法小米版版本 9.5.21.2111192114

隐私权限

在 Android 系统上,如果一个 App 要获取某些敏感的信息,必须提前向系统声明相关的权限;比如读取设备ID,获取联系人信息等等。我反编译了微信键盘和搜狗输入法,对比一下二者声明的权限,表格如下:

通过上面的表格可以看到,微信键盘总共申请了 9 个权限,搜狗输入法申请了 41 个权限;其中比较高危的权限我用红色标记了出来:

  • • 访问麦克风;虽然输入法需要这个权限实现语音输入的功能,但理论上这个权限可以实现录音。

  • • 获取设备ID;这个权限可以用来实现跟踪功能,可以通过设备ID关联到具体的人,对隐私保护至关重要。

  • • 访问sdcard;可以访问到 sdcard 中其他 App 的信息,也可以实现追踪。

  • • 读写联系人;虽然这个权限大概是用来输入联系人姓名的,但这样它就能读取你所有联系人信息。

  • • 读写短信;虽然这个权限大概是用来输入短信验证码的,但这样它就能读取你的短信。

  • • 获取地理位置;想不通输入法要这个权限干什么。

简单比较我们就能得知,搜狗输入法申请的权限将近微信键盘的 5 倍!!其中一些关键的权限,微信键盘完全都没有获取,**龙说微信键盘要保护隐私,从这个角度来说,他做到了。

有人会问,百度输入法和讯飞输入法咋样呢?加上百度之后,我27寸显示器,截图截不下了...它申请了 48 项权限,搜狗有的它也基本都有,搜狗没有的它也有!讯飞也好不到哪里去,它申请了 45 项权限。(作为对比,Google 自家的输入法 GBoard 申请了 22 项权限) 可以说,传统的输入法厂商,在权限申请方面,都是半斤八两,而微信键盘在他们面前,绝对是一股清流!!

用户跟踪

我们经常会发现,跟某人聊天提到了某个东西,淘宝上就会出现相关的广告。曾经有这样一个梗:上一秒在微信上打完笑死了,下一秒打开淘宝已经给我推荐棺材。

对用户隐私来说,有一点其实也很重要,那就是防止追踪。很多时候,App 不可避免地会获取到我们很多信息,除了输入法之外,比如购物 App 能获取你的订单信息、地址等,再比如绝大部分 App 可能要收集崩溃日志来改进程序;只要保证 App 获取的是匿名信息,它们能做的事就非常有限。在我们的信息不可避免地要被获取的情况下,退而求其次,防止被追踪也是非常有效的办法。

如果某个 App 可以获取我们的隐私信息,但它没有办法把这个信息传递给别人,那么它能做的事就非常有限;毕竟,如果一个输入法给自己加一个淘宝商城,用户八成是要把它卸载。

在设备跟踪方面,最常见的方法就是:imei / android_id / oaid / 自己生成 id 放 sdcard;继续反编译微信键盘和搜狗输入法:

说实话看到这个结果我是非常震惊的,在获取用户 ID 方面,微信键盘竟然全都是 0!反观百度输入法,为了跟踪用户简直无所不用其及,在 /sdcard 不同地方竟然存了四份!!

另外,在反编译微信键盘的时候,我意外发现如下代码:

这个键盘使用了一个叫 qimei 的 SDK,它刻意把 imei / imsi / android_id / mac addr / process info 给禁用了!

当然,这个结果也没有办法完全保证微信键盘没有跟踪用户,它至少还有这些方法:

  1. 1. 直接与微信交互获取用户信息;毕竟微信人手一份,微信键盘要是要跟踪用户,没必要用上面那些手段;这一点是怀疑,无证据。

  2. 2. 通过 JNI 的方式在 native 层获取 device_id / imei / android_id 等信息;这也是有可能的,不过这需要动态分析,暂时没有精力去处理。

其他

我看到有不少人调侃微信“小而美”,微信键盘安装包 150M,安装完毕后占用空间 780M,因为空间占用比较大而说它不好,就像是说鲁迅普通话不标准进而认为他的文章都是垃圾一样。对我来说,存储空间占用是最最廉价的属性了,原神占用我手机 20G,丝毫不影响我认为它是目前最好玩的手机游戏。

有一说一,我们来看一下微信这安装包里到底是放了什么占用这么大:

从上图可以看出,微信键盘安装包约 150M,里面 80% 的空间存放的是它的本地词库!!

我不清楚微信键盘为何要放这么大一个词库在安装包里面,不过,如果它将来出一个功能,可以不联网使用,仅使用本地词库,一定会是一个杀手锏。

总结

  1. 1. 微信键盘界面简洁,核心输入功能可以满足需求,不过还有改进空间。

  2. 2. 隐私保护方面吊打其他巨头同行,只有某些开源输入法可以媲美。

  3. 3. 毕竟还是 beta 版,某些臃肿的功能还没有时间开发,将来会不会搞得花里胡哨犹未可知。

总的来说,这款键盘非常值得体验,大家感兴趣的话可以后台回复 微信键盘 获取下载链接。

如果微信键盘现在停止开发,或者后续加入了各种权限和隐私跟踪功能,我将永远停留在此版本,用到 Android 系统倒闭。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存